home *** CD-ROM | disk | FTP | other *** search
/ Aminet 12 / Aminet 12 (1996)(GTI - Schatztruhe)[!][Jun 1996].iso / Aminet / misc / edu / Calgor.lha / Cal / Algorithms / selection.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-19  |  1.5 KB  |  52 lines

  1. #include<stdio.h>
  2. #include<hold/anim.h>
  3.  
  4. /* 000 */ void select_control(void);
  5. /* 001 */ void selection(int [],int);
  6.  
  7. /* 002 */ void select_control(void){
  8. /* 003 */  int d[10]={10,9,8,7,6,5,4,3,2,1};
  9.            a_func("select_control",2);
  10.            a_irayini(d,"d",10,3);
  11.            a_show(4);
  12. /* 004 */  selection(d,10);
  13.            a_endfunc("select_control",5);
  14. /* 005 */ }
  15. /* 006 */ void selection(int a[], int N){
  16. /* 007 */ int i, j, min, t;
  17.           a_func("selection",6);
  18.           a_iraypas("a",6);
  19.           a_intini(N,"N",6);
  20.           a_intini(i,"i",7);
  21.           a_intini(j,"j",7);
  22.           a_intini(min,"min",7);
  23.           a_intini(t,"t",7);
  24.           a_intass("i","0",8);
  25.           a_intcomp("i < N",8);
  26.  
  27. /* 008 */    for (i=0;i<N;i++){
  28. /* 009 */      min = i;
  29.                a_intass("min","i",9);
  30.                a_intass("j","i+1",10);
  31.                a_intcomp("j < N",10);
  32. /* 010 */      for(j=i+1;j<N;j++){
  33.                  a_intcomp("a[j] < a[min]",11);
  34. /* 011 */        if (a[j] < a[min]){
  35. /* 012 */          min = j;
  36.                    a_intass("min","j",12);
  37. /* 013 */        }
  38.                  a_intass("j","j+1",10);
  39.                  a_intcomp("j < N",10);
  40. /* 014 */      }
  41. /* 015 */      t = a[min];
  42.                a_intass("t","a[min]",15);
  43. /* 016 */      a[min] = a[i];
  44.                a_intass("a[min]","a[i]",16);
  45. /* 017 */      a[i] = t;
  46.                a_intass("a[i]","t",17);
  47.                a_intass("i","i+1",8);
  48.                a_intcomp("i < N",8);
  49. /* 018 */    }
  50.              a_endfunc("selection",19);
  51. /* 019 */ }
  52.